iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
DevOps

SRE/K8S 碎碎念系列 第 4

D4 維運小工具設定

  • 分享至 

  • xImage
  •  

我們可以用一些簡單的 alias 增加我們維運的效率

這邊我們會預設你有兩種環境 dev 跟 prod,這邊的環境會由你在下指令時選擇,所以我們會有變數的設定($1)。專案名稱我們設定為 “saru-playground”

  1. 設定 aws eks update context

    aws eks update-kubeconfig --region region-code --name my-cluster
    
  2. 設定 use-context

  3. 藉由 bastion name 找出 Bastion instance ID

      INSTANCE_ID=$(aws --profile saru-playground ec2 describe-instances --filters "Name=tag:Name,Values=saru-playground-$1-ec2-jump" "Name=instance-state-name,Values=running"  --query "Reservations[].Instances[].InstanceId" --output text)
    
  4. 找出 Endpoint

    aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters "{\"portNumber\":[\"443\"],\"localPortNumber\":[\"14443\"],\"host\":[\"$EKS_ENDPOINT\"]}" --profile saru-playground
    
  5. 設定成 Alias

    prieks(){
      kubectl config use-context saru-playground-$1
      INSTANCE_ID=$(aws --profile saru-playground ec2 describe-instances --filters "Name=tag:Name,Values=saru-playground-$1-ec2-jump" "Name=instance-state-name,Values=running"  --query "Reservations[].Instances[].InstanceId" --output text)
      EKS_ENDPOINT=$(aws --profile saru-playground eks describe-cluster --name "saru-playground-$1" --query "cluster.endpoint" --output text | sed 's/https:\/\///')
      echo "$EKS_ENDPOINT"
      aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters "{\"portNumber\":[\"443\"],\"localPortNumber\":[\"14443\"],\"host\":[\"$EKS_ENDPOINT\"]}" --profile saru-playground
    }
    
  6. 此時我們就可以使用簡單的指令

    prieks dev
    
  7. 開啟另一個視窗,就可以直接連線

    $ kubectl get pods -A
    

上一篇
Day 3 使用 Session Manager 連線至 EKS
下一篇
D5 EKS Plugin
系列文
SRE/K8S 碎碎念30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言